#include<iostream>
using namespace std;

//template<typename T>
//T Add(T a, T b)
//{
//	cout << "T Add(T a, T b)" << endl;
//	return a + b;
//}
//template<typename T1, typename T2>
//auto Add(T1 a, T2 b)
//{
//	cout << "auto Add(T1 a, T2 b)" << endl;
//	return a + b;
//}
//int Add(int a, int b)
//{
//	cout << "int Add(int a, int b)" << endl;
//	return a + b;
//}
//
//int main()
//{
//	Add(1.1, 2);
//	Add(2, 3);
//	Add(1.1, 2.2);
//	//cout << Add((int)1.1, 2) << endl;
//	/*cout << Add(1.1, 2) << endl;
//	cout << Add(2, 3) << endl;
//	cout << Add(1.1, 2.2) << endl;*/
//	return 0;
//}
namespace a
{
	template<class T>
	class Vector
	{
	public:
		Vector(size_t capacity = 10)
			:_arr(new T[capacity])
			, _size(0)
			, _capacity(capacity)
		{}
		~Vector();
		//...
	private:
		T* _arr;
		size_t _size;
		size_t _capacity;
	};

	template<class T>
	Vector<T>::~Vector()
	{
		if (_arr)
		{
			delete[] _arr;
		}
		_size = _capacity = 0;
	}
	
}
int main()
{
	a::Vector<int> t(10);
	return 0;
}